package com.netty.nettyGroupChat;

import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class MyChatClient {

    /**
     *  客户端接收信息
     *  客户端也得返回信息
     */

    public static void main(String[] args) throws Exception {
        EventLoopGroup eventExecutors = new NioEventLoopGroup();

        try{
            Bootstrap bootstrap = new Bootstrap();
            /**
             *  handler 和 childHandler
             *  Handler是处理只有一个线程组的时候，Handler默认处理的是第eventExecutors处理器。
             *  如果存在work的EvenLoopGroup，childHandler处理evenLoopGroup。
             */
            bootstrap.group(eventExecutors).channel(NioSocketChannel.class).handler(new MyChatClientInitializer());
            /**
             * 获取当前channel
             */
            Channel channel =  bootstrap.connect("localhost", 9999).sync().channel();

            /**
             * 读取控制台的输入
             */
            BufferedReader  bufferedReader = new BufferedReader(new InputStreamReader(System.in));
            /**
             *  写入到channel，返回给服务器。
             */
            while (true){
                channel.writeAndFlush(bufferedReader.readLine()+"\r\n");
            }

//            channelFutrue.channel().closeFuture().sync();
        }finally {
            eventExecutors.shutdownGracefully();
        }
    }
}
